Android数据存储SQLite数据库(模板)
本篇整合Android数据库的使用,以保存一个实体类为例子。
先来看下数据库语句:
ORM:关系对象映射
增加数据:
ContentValues values = new ContentValues(); values.put("name", "小丽"); values.put("phone", "110"); mDB.insert("student",//表名 null, //规避插入语句的错误 values );//插入的值删除数据:
mDB.delete("student", //表名 "name =http://www.it165.net/database/html/201503/?",//条件语句 new String[]{"小丽"});//条件语句的占位符修改数据:
ContentValues values = new ContentValues(); values.put("phone", "10086"); mDB.update("student",//表名 values, //要修改的值 "name =http://www.it165.net/database/html/201503/?",//条件语句 new String[]{"小丽"});查询数据:
Cursor cursor = mDB.query("student",//表名 null,//查询的字段 null,//条件语句 null,//条件语句的占位符 null,//分组语句 null,//分组条件 null);//排序 boolean toFirst = cursor.moveToFirst(); while(toFirst){ String name = cursor.getString(cursor.getColumnIndex("name")); String phone = cursor.getString(cursor.getColumnIndex("phone")); MyData myData = new MyData(name, phone); dataList.add(myData); toFirst = cursor.moveToNext(); }下面是数据库创建及使用步骤
1、方法调用
private DBMang_Order dbMang_Order; dbMang_Order=DBMang_Order.getInstance(getApplicationContext()); //查询 ArrayList<OrderUncheck> uncheckList = dbMang_Order.query(); //删除 dbMang_Order.delete(orderNo); //增加 dbMang_Order.insert(new OrderUncheck(orderNo, account, action)); //修改 dbMang_Order.update(new OrderUncheck(orderNo, account, action));2、首先创建要存储的实体类
public class OrderUncheck { String orderNo; double account; int action; public String getOrderNo() { return orderNo; } public void setOrderNo(String orderNo) { this.orderNo = orderNo; } public double getAccount() { return account; } public void setAccount(double account) { this.account = account; } public int getAction() { return action; } public void setAction(int action) { this.action = action; } public OrderUncheck(String orderNo, double account, int action) { super(); this.orderNo = orderNo; this.account = account; this.action = action; } }3、创建数据库
import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class MySQL_Order extends SQLiteOpenHelper { private static final String name = "count"; //数据库名称 private static final int version = 1; //数据库版本 //第三个参数CursorFactory指定在执行查询时获得一个游标实例的工厂类,设置为null,代表使用系统默认的工厂类 public MySQL_Order(Context context) { super(context, name, null, version); } @Override public void onCreate(SQLiteDatabase db) { String sql="CREATE TABLE neworder (_id INTEGER PRIMARY KEY AUTOINCREMENT,orderNo VARCHAR(200),account VARCHAR(19100),action VARCHAR(200))"; db.execSQL(sql); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // TODO Auto-generated method stub } }4、代码中被调用的方法在这个类:增删改查
public class DBMang_Order { private static DBMang_Order mDbManager=new DBMang_Order(); private static SQLiteDatabase mDb; private static Context context; private DBMang_Order() { } public static synchronized DBMang_Order getInstance(Context context){ DBMang_Order.context = context; if(mDb==null){ MySQL_Order mySQL = new MySQL_Order(context); mDb = mySQL.getWritableDatabase(); } return mDbManager; } interface NewTable{ String TABLE_NAME="neworder"; String TABLE_COLUMN_orderNo="orderNo"; String TABLE_COLUMN_account="account"; String TABLE_COLUMN_action="action"; } //增 public void insert(OrderUncheck info){ ContentValues values=new ContentValues(); values.put(NewTable.TABLE_COLUMN_orderNo, info.getOrderNo()); values.put(NewTable.TABLE_COLUMN_account, info.getAccount()); values.put(NewTable.TABLE_COLUMN_action, info.getAction()); Log.w("mDb.insert", ""+info); Log.w("mDb.insert",""+ values); mDb.insert(NewTable.TABLE_NAME, null, values); } //删 public void delete(String orderNo) { Log.w("delete", orderNo); mDb.delete(NewTable.TABLE_NAME, NewTable.TABLE_COLUMN_orderNo+"=http://www.it165.net/database/html/201503/?", new String[]{orderNo}); } //改 public void update(OrderUncheck info){ ContentValues values = new ContentValues(); values.put(NewTable.TABLE_COLUMN_account, info.getAccount()); mDb.update(NewTable.TABLE_NAME, values, NewTable.TABLE_COLUMN_orderNo+"=http://www.it165.net/database/html/201503/? and "+NewTable.TABLE_COLUMN_orderNo+"=http://www.it165.net/database/html/201503/?", new String[]{String.valueOf(info.getOrderNo()),""+info.getAccount()}); } //查 public ArrayList<OrderUncheck> query(){ Cursor cursor = mDb.query(NewTable.TABLE_NAME, null, null, null, null, null, null); ArrayList<OrderUncheck> list=new ArrayList<OrderUncheck>(); boolean toFirst = cursor.moveToFirst(); while (toFirst) { String orderNo = cursor.getString(cursor.getColumnIndex(NewTable.TABLE_COLUMN_orderNo)); String account = cursor.getString(cursor.getColumnIndex(NewTable.TABLE_COLUMN_account)); String action = cursor.getString(cursor.getColumnIndex(NewTable.TABLE_COLUMN_account)); double accountd = Double.parseDouble(account); int actiond=Integer.parseInt(action); OrderUncheck order = new OrderUncheck(orderNo, accountd,actiond); list.add(order); toFirst=cursor.moveToNext(); } cursor.close(); return list; } }相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/sql/sqlite/11247.shtml
相关文章
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
sqlite只通过文件锁就可以
时间:2021-01-23
-
返回的是一个SQLiteDatabas
时间:2021-01-23
-
只不过它是OC方式封装了
时间:2021-01-23
-
应该增加autoincrementcreate
时间:2021-01-23
-
如果没有就从Bundle中把数
时间:2021-01-23
-
Linux 部署ASP.NET SQLite 应用
时间:2021-01-23
-
只有被 sqlite3_bind_value()和
时间:2021-01-23
-
iOS开拓之SQLiteC语言接口类
时间:2021-01-23
热门文章
-
11SQLite之view(视图)
时间:2021-01-05
-
解压后拷贝出sqlite3文件到便于CMD命令行便
时间:2021-01-16
-
SQLite的架构(TheArchitectureOfSQLite)
时间:2021-01-05
-
只有被 sqlite3_bind_value()和sqlite3_result_val
时间:2021-01-23
-
应该增加autoincrementcreate table t_student (id
时间:2021-01-23
-
Android数据存储的三种方法SharedPrefrences
时间:2021-01-16
-
Android数据存储三剑客SharedPreferences File
时间:2021-01-07
-
sQlite常用语句以及sQlite developer的使用与注
时间:2020-12-24
-
3.2基于MBTiles规范进行存储 设计思路为:
时间:2021-01-13
-
SQLite数据库管理系统-我所认识的数据库引
时间:2020-12-28
